package com.farah.lease.common.login;

/**
 * @Author 不爱跑步的法拉韶
 * @Date 2024-06-24__15:33
 * @Description ThreadLocal线程变量工具类
 **/
public class LoginUserHolder {

    /**
     * 强引用防止内存泄漏
     */
    private static final ThreadLocal<LoginUser> THREAD_LOCAL = new ThreadLocal<>();

    /**
     *将用户信息保存到ThreadLocal
     * @param loginUser 用户信息对象
     */
    public static void setLoginUser(LoginUser loginUser) {
        THREAD_LOCAL.set(loginUser);
    }

    /**
     * 从ThreadLocal中获取用户信息
     * @return 用户信息对象
     */
    public static LoginUser getLoginUser() {
        return THREAD_LOCAL.get();
    }

    /**
     * 移除ThreadLocal中的用户信息
     */
    public static void clear() {
        THREAD_LOCAL.remove();
    }
}
